/*******************************************************************************
* Copyright (c) 2006, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.lrparser.c99;

public class C99ExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, C99ExpressionParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,3,1,
            1,4,4,3,3,2,2,4,1,0,
            1,1,2,2,2,2,2,2,2,2,
            2,4,1,4,1,3,3,3,1,3,
            3,1,3,3,1,3,3,3,3,1,
            3,3,1,3,1,3,1,3,1,3,
            1,3,1,5,1,3,3,3,3,3,
            3,3,3,3,3,3,1,1,2,1,
            0,1,3,1,1,1,1,1,1,1,
            1,3,4,3,2,4,1,2,1,1,
            1,2,5,7,5,1,0,7,2,5,
            9,8,3,2,2,2,3,2,4,2,
            2,2,2,2,1,1,1,1,2,1,
            2,2,2,1,2,2,1,2,2,1,
            2,2,1,2,2,1,3,1,3,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6,8,0,0,1,1,3,3,3,0,
            1,0,1,2,4,2,1,1,1,3,
            1,1,2,3,7,8,0,1,0,1,
            3,1,3,1,1,1,1,1,1,3,
            1,1,1,1,1,3,1,2,2,1,
            5,3,1,3,5,1,3,1,3,2,
            4,3,5,4,6,6,3,5,1,3,
            4,5,6,0,1,2,1,3,1,1,
            3,2,1,1,1,1,2,1,2,3,
            1,1,1,3,1,2,2,2,3,4,
            5,1,1,7,3,0,0,1,1,3,
            3,4,1,1,2,3,2,3,2,1,
            0,1,2,1,1,1,1,1,2,1,
            3,6,4,2,4,1,1,-37,0,0,
            0,0,0,0,0,0,0,0,-2,0,
            0,0,0,0,0,0,0,0,-137,0,
            0,-4,-159,-118,0,0,0,0,0,-74,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-14,0,-30,0,-31,0,0,0,
            0,0,-16,0,-80,-119,0,-120,0,0,
            0,0,0,0,0,0,-141,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-3,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-105,-124,0,0,-191,0,-17,-131,
            -130,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-5,0,0,0,0,
            0,0,0,0,0,-121,0,-122,0,0,
            0,0,-177,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-111,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-179,0,-194,0,-18,
            0,-19,0,-20,-21,-22,-192,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-134,0,-38,
            0,0,0,0,0,0,0,0,0,-39,
            0,0,0,0,0,0,0,0,0,0,
            0,-23,-109,-24,0,0,0,0,0,-71,
            -55,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-25,0,-107,-26,-88,-89,0,0,
            0,0,-90,0,-91,0,0,0,0,0,
            0,0,0,0,0,0,-27,0,0,0,
            0,0,0,0,0,0,0,-34,0,0,
            0,0,0,0,0,0,0,-57,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-58,0,
            0,0,0,0,0,0,0,0,0,-35,
            0,0,0,0,0,0,0,0,0,-59,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -60,0,0,0,0,0,0,0,0,0,
            0,-68,0,0,0,0,0,0,0,0,
            0,-61,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-62,0,0,0,0,0,0,0,
            0,0,0,-69,0,0,0,0,0,0,
            0,0,0,-63,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-64,0,0,0,0,0,
            0,0,0,0,0,-70,0,0,0,0,
            0,0,0,0,0,-65,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-66,0,0,0,
            0,0,0,0,0,0,0,-115,0,0,
            0,0,0,0,0,0,0,-67,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-123,0,
            0,0,0,0,0,0,0,0,0,-132,
            0,0,0,0,0,0,0,0,0,-144,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -145,0,0,0,0,0,0,0,0,0,
            0,-153,0,0,0,0,0,0,0,0,
            0,-180,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-189,0,0,0,0,0,0,0,0,
            0,0,-92,0,0,0,0,0,0,0,
            0,-6,0,0,0,0,0,0,0,-93,
            0,-7,0,0,0,0,0,0,0,-195,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-201,
            0,0,0,0,0,0,0,0,0,0,
            -94,0,0,0,0,0,0,0,0,-8,
            0,0,0,0,0,0,0,-200,0,-9,
            0,0,0,0,0,0,0,-209,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-133,-47,0,
            0,0,0,0,0,0,0,0,0,-49,
            0,0,0,0,0,0,0,0,0,0,
            -76,0,0,0,-95,-73,0,-148,-78,-125,
            0,0,0,0,0,0,0,0,0,-96,
            0,0,0,0,0,-112,0,0,0,-77,
            0,0,0,0,-149,0,0,0,0,0,
            0,0,0,0,0,0,0,-117,-166,0,
            -97,0,0,0,0,0,0,0,0,0,
            0,0,0,-157,0,0,-158,-98,0,0,
            -82,0,-56,0,0,0,0,0,0,0,
            0,0,0,-106,0,0,0,0,0,-52,
            0,0,0,0,0,0,0,0,0,0,
            -183,0,0,0,0,-87,0,-53,0,0,
            0,0,0,0,0,0,0,0,-167,0,
            0,0,0,0,-129,0,0,0,0,-1,
            -138,0,0,0,0,0,0,0,-99,-186,
            0,0,-181,-100,0,0,0,0,0,-170,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-48,
            0,0,0,0,0,0,0,0,0,0,
            -50,0,0,0,0,0,0,0,0,0,
            0,-196,0,-51,0,0,0,0,0,0,
            0,0,0,0,-208,0,0,-127,-140,0,
            0,0,-146,0,0,0,-101,-102,-103,0,
            0,-43,0,0,0,0,0,0,0,0,
            0,0,0,-104,0,-108,0,0,0,0,
            0,0,0,0,-10,0,0,0,0,0,
            0,0,-110,-83,0,-44,0,0,0,0,
            0,0,0,0,0,0,-45,0,0,0,
            0,0,0,0,0,0,0,-72,0,0,
            0,0,0,0,0,0,0,-46,0,0,
            0,0,0,0,0,0,0,0,-203,-171,
            -75,-11,0,0,0,0,0,0,0,0,
            0,0,-12,0,0,0,0,0,0,0,
            0,0,-126,-135,0,0,0,-143,-156,-160,
            -142,0,0,0,0,0,0,0,0,0,
            0,-210,0,-150,0,0,0,0,0,-114,
            0,0,0,0,0,0,0,0,0,-147,
            0,0,0,0,0,0,0,0,0,0,
            -36,-113,-139,0,0,0,0,0,0,0,
            0,0,-169,0,-40,0,0,0,0,0,
            0,0,-151,0,0,-154,0,-41,0,0,
            0,0,0,0,0,-42,0,0,0,0,
            0,0,0,-116,0,0,0,0,-162,0,
            -165,-168,0,-164,0,-32,-173,0,0,-187,
            -174,0,0,-190,0,-15,0,-163,0,-176,
            0,-175,0,0,0,0,0,0,-13,0,
            0,0,0,0,0,-28,0,0,-29,-178,
            0,0,-128,-155,0,0,0,0,0,0,
            0,0,0,-202,0,0,0,0,0,0,
            0,-79,-207,0,0,0,0,0,0,0,
            0,-172,0,-81,0,-85,0,-84,0,0,
            0,0,0,0,0,0,0,-86,-188,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-197,-184,-185,0,0,0,0,-136,
            -33,-54,0,0,0,0,-152,0,0,-204,
            0,0,0,0,0,-199,-161,0,0,0,
            0,-182,0,-205,0,-193,0,0,-206,0,
            0,0,0,0,0,0,0,0,0,0,
            -198,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            87,11,102,24,24,21,21,40,40,70,
            70,1,1,2,2,2,2,3,3,3,
            4,5,5,5,5,5,5,5,5,60,
            60,71,6,6,6,6,6,6,6,6,
            6,6,6,7,7,8,8,8,8,9,
            9,9,10,10,10,12,12,12,12,12,
            13,13,13,14,14,15,15,16,16,17,
            17,18,18,19,19,20,20,20,20,20,
            20,20,20,20,20,20,20,103,41,32,
            88,88,72,72,49,104,104,104,104,104,
            104,104,105,105,105,106,106,111,111,112,
            112,107,107,108,108,108,114,114,109,109,
            109,109,109,110,110,110,110,110,113,113,
            25,25,25,25,25,28,28,28,78,78,
            73,73,73,73,74,74,74,75,75,75,
            76,76,76,77,77,77,115,115,116,116,
            117,29,31,31,31,31,31,53,54,54,
            54,54,54,54,54,54,54,54,54,54,
            64,61,61,89,90,66,66,62,62,62,
            67,79,79,80,80,68,68,68,43,91,
            91,81,82,82,82,63,63,92,83,83,
            84,84,69,69,22,23,23,23,30,50,
            50,33,33,33,33,36,36,38,34,34,
            35,39,39,118,118,37,119,119,93,93,
            26,26,26,26,26,26,26,26,26,85,
            51,51,51,51,27,56,56,55,55,55,
            57,57,52,52,94,94,59,59,58,58,
            58,44,44,44,45,46,46,46,47,47,
            47,47,65,65,42,42,48,96,95,95,
            95,95,86,97,98,98,99,99,100,100,
            120,120,121,121,122,122,122,122,124,124,
            123,123,123,125,126,126,87,87,1,627,
            17,21,18,373,626,45,449,383,542,31,
            540,545,544,592,546,623,594,75,92,124,
            136,214,670,629,596,339,138,135,137,161,
            275,20,17,21,18,373,626,45,449,383,
            542,1502,540,545,544,592,546,623,594,75,
            1146,140,167,579,240,201,31,201,31,144,
            147,150,153,57,385,118,201,188,201,187,
            342,1129,1612,1624,1628,1638,1226,434,20,17,
            21,18,373,626,45,449,383,542,343,540,
            545,544,592,546,623,594,75,282,482,20,
            17,21,18,373,626,45,449,383,542,1526,
            540,545,544,592,546,623,594,75,92,283,
            1590,1263,294,97,518,1366,25,158,24,157,
            695,299,20,17,21,18,373,626,45,449,
            383,542,288,540,545,544,592,546,623,594,
            75,1343,256,214,344,241,506,20,17,21,
            18,373,41,289,285,28,662,1503,201,189,
            342,1366,1187,332,20,17,21,18,373,626,
            45,449,383,542,343,540,545,544,592,546,
            623,594,75,282,554,20,17,21,18,373,
            626,45,449,383,542,1593,540,545,544,592,
            546,623,594,75,1245,283,201,297,201,299,
            6,1366,30,284,589,200,191,458,20,17,
            21,18,373,626,45,449,383,542,290,540,
            545,544,592,546,623,594,75,282,189,180,
            482,20,17,21,18,373,43,45,628,291,
            482,20,17,21,18,373,43,45,633,283,
            136,214,344,242,243,1366,138,135,137,161,
            104,482,20,17,21,18,373,43,45,449,
            383,542,292,540,545,544,592,546,1349,275,
            1453,140,167,171,22,14,547,578,194,144,
            147,150,153,199,385,416,444,270,1150,1121,
            273,1129,1612,1624,1628,1638,1226,482,20,17,
            21,18,373,626,45,449,383,542,489,540,
            545,544,592,546,623,594,75,93,482,20,
            17,21,18,373,626,45,449,383,542,1408,
            540,545,544,592,546,623,594,75,86,482,
            20,17,21,18,373,626,45,449,383,542,
            489,540,545,544,592,546,623,594,75,85,
            482,20,17,21,18,373,626,45,449,383,
            542,19,540,545,544,592,546,623,594,75,
            84,482,20,17,21,18,373,626,45,449,
            383,542,489,540,545,544,592,546,623,594,
            75,83,482,20,17,21,18,373,626,45,
            449,383,542,443,540,545,544,592,546,623,
            594,75,82,482,20,17,21,18,373,626,
            45,449,383,542,489,540,545,544,592,546,
            623,594,75,81,482,20,17,21,18,373,
            626,45,449,383,542,1204,540,545,544,592,
            546,623,594,75,80,482,20,17,21,18,
            373,626,45,449,383,542,489,540,545,544,
            592,546,623,594,75,79,482,20,17,21,
            18,373,626,45,449,383,542,23,540,545,
            544,592,546,623,594,75,78,482,20,17,
            21,18,373,626,45,449,383,542,489,540,
            545,544,592,546,623,594,75,77,482,20,
            17,21,18,373,626,45,449,383,542,274,
            540,545,544,592,546,623,594,75,76,482,
            20,17,21,18,373,626,45,449,383,542,
            489,540,545,544,592,546,623,594,75,74,
            482,20,17,21,18,373,626,45,449,383,
            542,280,540,545,544,592,546,623,594,75,
            1549,482,20,17,21,18,373,626,45,449,
            383,542,489,540,545,544,592,546,623,594,
            75,1568,482,20,17,21,18,373,43,45,
            449,383,542,281,540,545,544,592,546,623,
            594,94,482,20,17,21,18,373,43,45,
            449,383,542,466,540,545,544,592,546,623,
            594,94,482,20,17,21,18,373,43,40,
            488,1696,482,20,17,21,18,373,43,39,
            482,20,17,21,18,373,43,45,449,383,
            542,213,540,545,544,592,546,623,594,94,
            482,20,17,21,18,373,43,45,449,383,
            542,490,540,545,544,592,546,623,594,94,
            482,20,17,21,18,373,43,38,446,1699,
            482,20,17,21,18,373,43,37,482,20,
            17,21,18,373,43,45,449,383,542,203,
            540,545,544,592,546,623,594,94,113,482,
            20,17,21,18,373,43,45,449,1125,1523,
            482,20,17,21,18,373,43,45,449,383,
            542,144,540,1171,275,241,44,204,207,232,
            14,219,1155,222,1474,224,225,230,195,1551,
            601,397,268,1150,1121,273,104,276,264,278,
            327,136,214,1383,275,499,265,143,135,137,
            161,219,1155,222,1474,224,225,230,679,679,
            242,245,268,1150,1121,273,277,593,1554,1670,
            1664,229,142,167,559,1561,868,712,13,279,
            232,387,262,482,20,17,21,18,373,43,
            45,449,383,542,205,540,545,544,592,1364,
            482,20,17,21,18,373,43,45,449,383,
            542,710,540,545,544,1264,189,180,482,20,
            17,21,18,373,43,45,449,383,542,151,
            540,545,1347,256,214,104,28,1570,136,214,
            382,14,1366,210,139,135,137,161,386,50,
            281,418,1594,630,637,275,1453,1557,1572,244,
            421,1680,220,1155,222,1474,224,225,230,141,
            167,1260,88,270,1150,1121,273,145,148,151,
            154,316,385,219,1155,222,1474,224,225,230,
            482,20,17,21,18,373,43,45,449,1140,
            1604,482,20,17,21,18,373,43,45,449,
            383,542,719,1188,482,20,17,21,18,373,
            43,45,449,383,542,281,1259,329,44,14,
            196,199,201,104,256,214,1680,697,305,324,
            1184,1068,482,20,17,21,18,373,43,45,
            449,383,635,295,671,1458,615,243,219,1155,
            222,1474,224,225,230,482,20,17,21,18,
            373,43,36,676,414,1604,482,20,17,21,
            18,373,43,45,449,383,993,482,20,17,
            21,18,373,43,45,449,383,1010,409,20,
            17,21,18,373,43,44,200,201,482,20,
            17,21,18,373,43,45,449,383,1051,612,
            95,326,482,20,17,21,18,373,43,35,
            1680,568,1544,530,20,17,21,18,373,34,
            28,388,278,733,711,198,1366,275,698,14,
            707,44,219,1155,222,1474,224,225,230,1687,
            1622,1692,728,1270,720,268,1150,1121,273,1554,
            358,20,17,21,18,373,43,36,1460,868,
            358,20,17,21,18,373,43,36,194,1453,
            228,160,52,664,247,220,1155,222,1474,224,
            225,230,1126,518,248,482,20,17,21,18,
            373,43,48,44,255,214,721,275,482,20,
            17,21,18,373,43,47,482,20,17,21,
            18,373,43,46,567,268,1150,1121,273,104,
            1383,567,14,181,489,568,465,723,450,267,
            723,696,568,1665,201,1561,14,418,104,1098,
            518,1383,724,245,1239,226,1098,318,1383,530,
            20,17,21,18,373,33,14,451,90,14,
            738,198,246,52,48,593,260,318,88,910,
            318,1454,1239,260,742,568,910,700,1454,1501,
            447,198,627,287,198,255,214,1639,88,198,
            1694,88,559,1561,632,658,439,700,661,1501,
            700,1769,1501,211,136,214,1769,1270,666,518,
            146,135,137,161,826,742,136,214,784,450,
            136,214,149,135,137,161,152,135,137,161,
            136,214,193,489,587,142,155,135,137,161,
            116,14,14,1513,1430,568,568,357,920,205,
            44,568,418,418,231,1769,518,52,568,1098,
            198,210,52,488,518,1098,104,1769,1769,104,
            1769,1769,1098,88,88,1560,1572,1383,1270,255,
            214,365,600,1348,255,214,260,1769,486,1663,
            296,1454,260,298,1769,952,182,1454,1769,261,
            1769,1472,235,193,206,1769,1769,1769,1769,1769,
            1769,1769,1769,1221,1686,1430,1769,1769,1322,1769,
            1769,1769,1769,1769,1769,1769,1769,1711,1769,0,
            20,180,0,1,1996,0,1,2007,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    @Override
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,0,6,7,8,9,
            10,11,0,0,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,0,
            0,31,32,33,34,35,36,37,38,39,
            40,41,42,0,44,45,46,0,1,0,
            3,0,5,6,7,8,0,6,7,8,
            55,56,57,58,17,9,10,55,56,57,
            58,24,25,26,27,28,47,48,31,32,
            33,34,35,36,37,38,39,40,41,42,
            43,44,45,46,0,1,0,3,51,5,
            6,7,8,0,55,56,57,58,5,13,
            80,17,0,1,2,0,4,0,24,25,
            26,27,28,0,12,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,0,1,0,3,51,5,6,7,8,
            0,1,2,50,4,12,0,0,17,0,
            4,2,12,4,49,24,25,26,27,28,
            0,12,31,32,33,34,35,36,37,38,
            39,40,41,42,43,44,45,46,0,1,
            0,3,51,0,6,7,8,4,0,0,
            0,1,4,3,0,17,0,1,2,53,
            54,5,24,25,26,27,28,13,12,31,
            32,33,34,35,36,37,38,39,40,41,
            42,0,44,45,46,65,30,6,7,8,
            0,0,0,2,0,4,53,54,17,9,
            10,53,54,12,64,24,25,26,27,28,
            61,62,31,32,33,34,35,36,37,38,
            39,40,41,42,0,1,2,3,4,5,
            0,1,2,9,10,11,0,1,14,15,
            16,17,18,19,20,21,22,23,0,1,
            2,3,4,5,0,61,62,9,10,11,
            68,69,14,15,16,17,18,19,20,21,
            22,23,0,0,50,0,0,2,2,0,
            5,0,1,2,3,4,5,12,12,59,
            9,10,11,0,13,14,15,16,50,18,
            19,20,21,22,23,30,0,0,1,2,
            3,4,5,59,0,0,9,10,11,5,
            0,14,15,16,43,18,19,20,21,22,
            23,0,1,2,3,4,0,1,65,3,
            9,10,11,29,30,14,15,16,0,18,
            19,20,21,22,23,49,63,50,0,1,
            2,3,4,0,1,0,3,9,10,11,
            0,13,14,15,16,5,18,19,20,21,
            22,23,51,0,1,2,3,4,0,1,
            0,3,9,10,11,0,13,14,15,16,
            5,18,19,20,21,22,23,0,1,2,
            3,4,47,48,0,0,9,10,11,5,
            13,14,15,16,29,18,19,20,21,22,
            23,0,1,2,3,4,66,0,0,0,
            9,10,11,5,30,14,15,16,0,18,
            19,20,21,22,23,0,1,2,3,4,
            12,66,47,48,9,10,11,0,30,14,
            15,16,5,18,19,20,21,22,23,0,
            1,2,3,4,47,48,47,48,9,10,
            11,0,0,14,15,16,0,18,19,20,
            21,22,23,0,1,2,3,4,0,1,
            43,3,9,10,11,0,0,14,15,16,
            4,18,19,20,21,22,23,0,0,2,
            2,4,5,6,7,8,0,1,0,12,
            12,0,14,15,17,0,1,0,3,11,
            0,24,25,26,27,28,60,30,13,9,
            10,0,1,2,0,49,70,71,72,73,
            74,75,76,77,78,79,0,13,0,0,
            52,0,6,7,8,49,0,6,7,8,
            12,12,0,17,0,67,0,1,17,3,
            24,25,26,27,28,24,25,26,27,28,
            0,0,1,0,3,0,6,7,8,0,
            0,6,7,8,13,0,13,17,0,4,
            52,52,17,5,24,25,26,27,28,24,
            25,26,27,28,0,0,0,0,29,63,
            6,7,8,6,7,8,0,11,30,0,
            0,0,6,7,8,6,7,8,0,0,
            0,2,0,0,6,7,8,0,1,2,
            0,12,0,13,64,5,4,0,0,29,
            29,0,0,0,0,0,0,0,0,0,
            0,29,29,0,0,60,13,13,13,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,43,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,60,0,0,
            59,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    @Override
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            1769,1780,1566,1781,1375,60,1984,1985,1986,1070,
            1060,1432,62,1,1579,1443,476,1933,1782,1783,
            1784,1785,1012,1002,1934,1932,1987,1935,1931,55,
            1769,1938,1943,1942,1940,1941,1939,1944,1945,1937,
            1946,1947,1948,254,1626,1384,1191,1769,1,61,
            1,1769,192,1,1,1,52,1984,1985,1986,
            1418,1397,1386,1352,1,580,570,1418,1397,1386,
            1352,1,1,1,1,1,1099,1300,1,1,
            1,1,1,1,1,1,1,1,1,1,
            192,1,1,1,1769,1,42,1,1966,191,
            1,1,1,1769,1418,1397,1386,1352,1773,2817,
            1759,1,263,1996,1128,1,1,183,1,1,
            1,1,1,184,350,1,1,1,1,1,
            1,1,1,1,1,1,1,191,1,1,
            1,1769,1,272,1,1966,192,1,1,1,
            269,1996,1128,1772,254,350,49,287,1,266,
            1536,1431,350,1,2028,1,1,1,1,1,
            71,350,1,1,1,1,1,1,1,1,
            1,1,1,1,192,1,1,1,1769,1780,
            69,1781,1966,51,1984,1985,1986,1536,50,63,
            1769,1780,1536,1781,1769,1933,1,1763,1128,1528,
            1515,1775,1934,1932,1987,1935,1931,2817,350,1938,
            1943,1942,1940,1941,1939,1944,1945,1937,1946,1947,
            1948,130,1626,1384,1191,1193,1774,1984,1985,1986,
            54,269,73,1431,64,254,1528,1515,1933,580,
            570,1528,1515,350,1210,1934,1932,1987,1935,1931,
            1324,1311,1938,1943,1942,1940,1941,1939,1944,1945,
            1937,1946,1947,1948,1,1780,1566,1781,1480,1773,
            1,1996,1429,1070,1060,1432,1769,2008,1579,1443,
            476,514,1782,1783,1784,1785,1012,1002,1769,1780,
            1566,1781,1490,1773,1769,1324,1311,1070,1060,1432,
            601,1672,1579,1443,476,941,1782,1783,1784,1785,
            1012,1002,1769,72,1772,1,271,1431,1168,1769,
            1775,1,1780,1566,1781,1375,29,350,350,1040,
            1070,1060,1432,67,2817,1579,1443,476,1772,1782,
            1783,1784,1785,1012,1002,1774,1,1769,1780,1566,
            1781,1375,1773,899,1769,1769,1070,1060,1432,1775,
            1769,1579,1443,476,29,1782,1783,1784,1785,1012,
            1002,1769,1,1,1,1,186,2830,1193,2830,
            1,1,1,1613,1774,1,1,1,1769,1,
            1,1,1,1,1,2027,1228,1772,1769,1780,
            1566,1781,1375,185,2831,59,2831,1070,1060,1432,
            1,2817,1579,1443,476,1779,1782,1783,1784,1785,
            1012,1002,2086,1,1780,1566,1781,1375,207,2832,
            1769,2832,1070,1060,1432,1769,2817,1579,1443,476,
            1779,1782,1783,1784,1785,1012,1002,1769,1780,1566,
            1781,1375,1099,1300,1,58,1070,1060,1432,91,
            2817,1579,1443,476,1335,1782,1783,1784,1785,1012,
            1002,1769,1780,1566,1781,1375,1778,57,1769,56,
            1070,1060,1432,1775,91,1579,1443,476,221,1782,
            1783,1784,1785,1012,1002,1769,1780,1586,1781,1375,
            350,1778,1099,1300,1070,1060,1432,1769,1774,1579,
            1443,476,1777,1782,1783,1784,1785,1012,1002,1769,
            1780,1589,1781,1375,1099,1300,1099,1300,1070,1060,
            1432,1769,1769,1579,1443,476,43,1782,1783,1784,
            1785,1012,1002,1,1780,1566,1781,1375,209,1780,
            1776,1781,1070,1060,1432,1769,1,1579,1443,476,
            254,1782,1783,1784,1785,1012,1002,20,32,1760,
            1556,1760,1760,180,180,180,1,1766,65,1760,
            1671,1769,1795,1796,180,1769,1780,1769,1781,1110,
            53,180,180,180,180,180,878,1760,1251,580,
            570,1,1996,1429,1769,2028,857,836,815,794,
            773,731,752,710,689,668,131,1130,1769,293,
            377,132,1984,1985,1986,2028,68,1984,1985,1986,
            962,1020,1769,1933,1769,375,208,1564,1933,1564,
            1934,1932,1987,1935,1931,1934,1932,1987,1935,1931,
            133,1769,1780,1769,1781,134,1984,1985,1986,89,
            70,1984,1985,1986,1339,1769,1459,1933,1,1338,
            536,538,1933,1775,1934,1932,1987,1935,1931,1934,
            1932,1987,1935,1931,249,212,66,250,647,1228,
            1984,1985,1986,1,1,1,251,1110,1774,252,
            257,30,1,1,1,1984,1985,1986,253,223,
            1769,1169,30,208,1984,1985,1986,254,1996,1429,
            286,350,1769,1552,1210,625,1461,1769,1769,1677,
            493,202,1769,190,190,190,1769,1769,1769,1769,
            1769,1798,2733,1769,1769,982,186,185,207,1769,
            1769,1769,1769,1769,1769,1769,1769,1769,1769,1769,
            1769,1769,1769,625,1769,1769,1769,1769,1769,1769,
            1769,1769,1769,1769,1769,1769,1769,1769,1769,1769,
            1769,1769,1769,1769,1769,1769,1769,547,1769,1769,
            1078
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            233,1,9,64,9,9,9,9,9,9,
            9,9,9,26,392,46,43,50,48,56,
            54,58,57,60,59,32,9,392,392,328,
            328,368,9,199,199,227,392,9,9,9,
            9,9,9,9,9,9,9,9,9,9,
            9,9,9,9,9,9,9,9,9,9,
            9,9,9,9,9,9,9,199,199,199,
            68,115,231,3,298,197,196,202,214,129,
            214,129,129,214,129,214,406,153,43,43,
            48,48,48,48,46,46,54,50,50,57,
            56,337,59,58,71,131,278,131,227,231,
            133,68,429,7,199,339,301,129,328,328,
            129,328,9,278,113,231,222,429,68,6,
            3,199,225,406,198,303,131,251,131,292,
            113,222,222,9,9,68,7,298,332,331,
            231,303,199,131,251,292,292,294,282,222,
            429,68,68,199,339,301,225,251,278,285,
            251,292,294,387,294,278,111,390,328,9,
            281,429,222,303,251,287,294,278,9,328,
            26,115,68,328,9,222,199,198,278,107,
            9,106,22,231,278,68,329,287,9,22
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            80,0,6,7,8,17,50,5,18,19,
            20,21,3,14,15,11,9,10,22,23,
            16,4,2,1,0,12,2,52,67,14,
            15,60,70,71,72,73,74,76,75,77,
            78,79,4,53,54,9,10,48,47,55,
            56,57,58,61,62,11,63,64,65,43,
            66,68,69,59,30,80,29,50,5,0,
            11,4,9,10,53,54,47,48,55,56,
            57,58,61,62,63,64,65,68,69,60,
            70,71,72,73,74,75,76,77,78,79,
            50,30,43,80,13,59,66,5,29,0,
            5,43,12,52,14,15,11,4,9,10,
            22,23,16,2,18,19,20,21,1,3,
            13,0,6,7,8,2,18,19,20,21,
            1,3,14,15,11,4,9,10,22,23,
            16,0,7,17,28,8,27,26,25,6,
            24,52,67,14,15,11,9,10,53,54,
            47,48,55,56,57,58,61,62,63,64,
            65,68,69,60,70,71,72,73,74,75,
            76,77,78,79,4,2,12,29,30,5,
            0,39,31,36,34,35,33,32,37,38,
            40,41,42,59,66,28,25,17,24,27,
            26,6,7,8,29,1,5,30,2,12,
            4,0,16,18,19,20,21,1,3,2,
            14,15,11,4,9,10,22,23,51,0,
            24,31,6,32,44,25,33,26,34,35,
            27,7,36,37,17,45,28,46,38,39,
            8,40,41,42,1,3,51,5,43,0,
            60,12,52,0,66,5,4,1,2,59,
            0,1,3,5,43,29,0,4,2,12,
            30,5,24,31,6,32,44,25,33,26,
            34,35,27,7,36,37,17,45,28,46,
            38,39,8,40,41,42,49,3,1,0,
            2,5,29,30,66,12,59,0,4,24,
            31,6,32,44,25,33,26,34,35,27,
            7,36,37,17,45,28,46,38,39,8,
            40,41,42,1,3,49,0,5,30,16,
            18,19,20,21,1,3,2,14,15,11,
            4,9,10,22,23,0,5,29,43,60,
            0,16,18,19,20,21,2,14,15,11,
            4,9,10,22,23,1,3,44,45,46,
            39,31,36,34,35,33,32,37,38,40,
            41,42,28,25,17,24,27,26,6,7,
            8,0
        };
    };
    public final static byte asr[] = Asr.asr;
    @Override
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static byte nasb[] = {0,
            78,42,30,42,30,30,30,30,30,30,
            30,30,30,42,109,42,42,42,42,42,
            42,42,42,42,42,42,30,109,109,17,
            17,106,110,60,60,95,1,30,30,30,
            30,30,30,30,30,30,30,30,30,30,
            30,30,30,110,30,30,30,30,30,30,
            30,30,30,30,30,30,30,60,60,60,
            15,86,49,13,94,47,47,69,70,19,
            70,118,118,70,117,70,64,42,42,42,
            42,42,42,42,42,42,42,42,42,42,
            42,42,42,42,87,87,57,42,43,42,
            32,15,99,14,60,101,59,7,7,7,
            7,7,30,21,57,42,76,99,15,14,
            25,60,53,35,42,103,9,57,42,57,
            28,76,57,30,30,15,14,52,47,47,
            49,103,60,42,113,57,7,62,11,57,
            99,15,15,60,101,59,72,57,21,83,
            90,7,62,42,42,21,27,42,7,30,
            81,99,25,120,113,55,62,21,30,7,
            23,29,15,7,30,25,60,60,21,84,
            30,42,55,49,21,15,42,55,30,74
        };
    };
    public final static byte nasb[] = Nasb.nasb;
    @Override
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            78,76,75,66,74,73,1,0,90,0,
            98,0,11,5,24,0,71,0,89,0,
            40,0,96,0,22,0,86,11,48,5,
            0,5,11,0,78,77,76,75,66,74,
            73,0,46,45,27,0,26,0,27,51,
            0,21,46,45,36,34,11,0,11,21,
            0,60,0,66,61,62,63,64,53,28,
            0,46,45,36,34,27,0,11,87,0,
            100,0,11,70,0,5,48,42,0,11,
            43,68,0,21,45,46,11,0,56,0,
            27,51,11,25,0,11,88,0,43,11,
            41,0,80,11,43,0,92,67,0,93,
            11,25,0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            85,2,86,9,87,48,64,76,10,11,
            8,1,3,6,7,68,69,81,82,83,
            84,12,13,44,55,60,63,72,42,90,
            47,52,56,61,62,66,67,74,75,78,
            79,80,91,54,70,73,16,17,30,89,
            93,4,14,15,18,19,20,21,29,31,
            22,23,24,25,26,92,5,27,28,32,
            33,34,35,36,37,38,39,40,41,94,
            45,46,49,50,51,53,57,58,59,65,
            71,77,88
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            100,0,0,0,102,106,107,108,109,110,
            0,111,112,113,114,115,116,117,0,118,
            97,128,0,96,121,149,0,127,0,0,
            0,0,145,147,0,148,0,0,0,98,
            101,105,140,158,159,160,0,0,120,136,
            146,155,130,0,150,153,154,157,104,0,
            131,132,133,134,135,137,0,139,144,99,
            103,119,122,123,124,125,126,129,0,138,
            142,0,0,143,152,162,95,0,0,0,
            141,0,151,156,161,0,163,164,0,165,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            82,113,92,35,41,121,12,136,21,51,
            69,28,47,103,158,165,169,145,1,1,
            32,56,79,173,6,107,152,152,127,99,
            59,59,59
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            90,90,90,4,4,90,18,142,26,4,
            26,26,4,101,26,26,4,149,4,4,
            26,4,26,26,9,110,155,162,130,101,
            66,61,74
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            63,61,63,26,26,61,42,108,47,26,
            39,47,26,68,6,5,5,19,100,99,
            45,26,36,3,86,68,7,5,109,68,
            39,37,39
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            43,43,43,50,50,43,43,86,30,50,
            30,30,50,66,30,30,50,59,50,50,
            30,50,30,30,60,1,30,30,92,66,
            2,2,2
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    @Override
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static byte scopeStateSet[] = {
            24,24,24,28,28,24,17,-1,32,28,
            9,32,28,5,39,39,39,69,1,3,
            32,28,9,39,95,5,42,39,-1,5,
            9,9,9
        };
    };
    public final static byte scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            142,12,0,96,0,190,104,0,31,135,
            0,153,188,104,13,141,0,98,0,0,
            148,104,2,138,0,97,0,148,104,2,
            0,151,2,0,113,17,178,104,12,0,
            113,178,104,17,12,0,113,17,12,0,
            113,178,104,12,0,113,12,0,129,0,
            2,0,151,97,0,2,97,0,148,104,
            2,129,0,2,0,150,97,0,143,2,
            0,153,176,104,13,94,185,44,0,98,
            0,153,176,104,13,185,44,0,136,0,
            99,0,184,104,136,0,104,136,0,141,
            99,0,172,104,13,183,94,182,159,0,
            172,104,13,182,159,0,197,85,0,77,
            2,101,97,99,0,197,114,134,2,89,
            0,53,0,0,134,69,111,0,29,118,
            0,152,2,0,97,107,0,152,2,16,
            0,97,105,0,181,2,98,0,134,12,
            98,0,134,2,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            1263,0,343,0,1665,1430,1594,0,1472,1335,
            1429,1260,1239,1128,1098,0,547,493,397,1204,
            443,1408,0,568,1226,318,0,1474,1155,1150,
            1121,1239,1128,1098,593,1431,1501,0,1579,1443,
            476,1490,1480,1408,1193,601,1228,1210,1324,1311,
            1110,1300,1099,1418,1397,1386,1352,1536,1528,1515,
            580,570,1432,1375,1070,1060,1012,1002,1078,1040,
            1020,547,982,962,941,920,451,899,514,350,
            878,857,836,815,794,773,752,731,710,689,
            668,318,647,418,493,397,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,180,104,165,16,23,22,10,9,4,
            11,15,14,98,2,102,101,105,103,107,
            106,109,108,111,110,99,29,2,2,67,
            52,2,12,152,134,136,104,10,9,54,
            53,4,58,57,56,55,47,48,11,62,
            61,64,63,69,68,65,79,78,77,75,
            76,74,73,72,71,70,60,152,152,181,
            134,114,104,12,2,139,138,166,167,159,
            168,46,45,169,44,170,171,94,101,101,
            103,103,103,103,102,102,106,105,105,108,
            107,134,110,109,114,114,13,141,144,120,
            17,113,104,4,151,104,2,182,160,160,
            185,160,59,104,13,120,4,104,113,178,
            149,148,118,104,150,104,94,13,94,13,
            104,4,120,178,17,113,4,2,127,129,
            104,29,148,183,104,13,104,188,104,120,
            104,113,113,143,104,2,144,13,172,136,
            173,104,176,94,177,153,29,190,52,12,
            191,104,149,104,104,104,176,153,60,29,
            133,60,142,52,12,149,148,186,172,184,
            59,143,2,104,153,142,29,29,59,144
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            "{",
            ".",
            "->",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "auto",
            "break",
            "case",
            "char",
            "const",
            "continue",
            "default",
            "do",
            "double",
            "else",
            "enum",
            "extern",
            "float",
            "for",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "register",
            "restrict",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "struct",
            "switch",
            "typedef",
            "union",
            "unsigned",
            "void",
            "volatile",
            "while",
            "_Bool",
            "_Complex",
            "_Imaginary",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "expression_parser_start",
            "]",
            ")",
            "}",
            ";",
            "identifier_token",
            "expression",
            "postfix_expression",
            "member_name",
            "type_id",
            "initializer_list",
            "unary_expression",
            "cast_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "expression_list_actual",
            "constant_expression",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "struct_or_union_declaration_sp" +
            "ecifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "typdef_name_declaration_specif" +
            "iers",
            "no_type_declaration_specifier",
            "type_qualifier",
            "no_type_declaration_specifiers",
            "simple_type_specifier",
            "struct_or_union_specifier",
            "elaborated_specifier",
            "enum_specifier",
            "type_name_specifier",
            "initializer",
            "declarator",
            "struct_or_union",
            "struct_declaration_list",
            "struct_declaration",
            "specifier_qualifier_list",
            "struct_declarator_list",
            "complete_struct_declarator",
            "enumerator_list",
            "enumerator",
            "direct_declarator",
            "pointer_seq",
            "array_direct_declarator",
            "basic_direct_declarator",
            "array_modifier",
            "parameter_type_list",
            "identifier_list",
            "array_modifier_type_qualifiers",
            "type_qualifier_list",
            "parameter_list",
            "parameter_declaration",
            "complete_parameter_declarator",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "initializer_seq",
            "designated_initializer",
            "designation",
            "designator_list",
            "designator"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 51,
           SCOPE_UBOUND      = 32,
           SCOPE_SIZE        = 33,
           MAX_NAME_LENGTH   = 38;

    public final int getErrorSymbol() { return ERROR_SYMBOL; }
    public final int getScopeUbound() { return SCOPE_UBOUND; }
    public final int getScopeSize() { return SCOPE_SIZE; }
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 210,
           NT_OFFSET         = 93,
           LA_STATE_OFFSET   = 2086,
           MAX_LA            = 2,
           NUM_RULES         = 317,
           NUM_NONTERMINALS  = 126,
           NUM_SYMBOLS       = 219,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 1250,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 80,
           EOLT_SYMBOL       = 80,
           ACCEPT_ACTION     = 1759,
           ERROR_ACTION      = 1769;

    public final static boolean BACKTRACK = true;

    public final int getNumStates() { return NUM_STATES; }
    public final int getNtOffset() { return NT_OFFSET; }
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    public final int getMaxLa() { return MAX_LA; }
    public final int getNumRules() { return NUM_RULES; }
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    public final int getNumSymbols() { return NUM_SYMBOLS; }
    public final int getSegmentSize() { return SEGMENT_SIZE; }
    public final int getStartState() { return START_STATE; }
    public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    public final int getEoftSymbol() { return EOFT_SYMBOL; }
    public final int getEoltSymbol() { return EOLT_SYMBOL; }
    public final int getAcceptAction() { return ACCEPT_ACTION; }
    public final int getErrorAction() { return ERROR_ACTION; }
    public final boolean isValidForParser() { return isValidForParser; }
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
